package cn.iocoder.yudao.module.dbit.controller.admin.jobinfo.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;
import java.util.*;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import org.springframework.format.annotation.DateTimeFormat;

@Schema(description = "管理后台 - 企业职位信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class JobInfoRespVO {

    @Schema(description = "职位id")
    @ExcelProperty("职位id")
    private Integer jobId;

    @Schema(description = "招聘title", example = "芋艿")
    @ExcelProperty("招聘title")
    private String jobName;

    @Schema(description = "1:实习，2：社招 dic字段job_type", example = "1")
    @ExcelProperty(value = "1:实习，2：社招 dic字段job_type", converter = DictConvert.class)
    @DictFormat("job_type") // TODO 代码优化：建议设置到对应的 DictTypeConstants 枚举类中
    private Integer jobType;

    @Schema(description = "岗位职责")
    @ExcelProperty("岗位职责")
    private String jobDuty;

    @Schema(description = "岗位要求")
    @ExcelProperty("岗位要求")
    private String jobAsk;

    @Schema(description = "最低薪资")
    @ExcelProperty("最低薪资")
    private Long salaryRangeFrom;

    @Schema(description = "最高薪资")
    @ExcelProperty("最高薪资")
    private Long salaryRangeTo;

    @Schema(description = "薪资月数，13薪")
    @ExcelProperty("薪资月数，13薪")
    private Integer salaryMonth;

    @Schema(description = "1:是， 2：否")
    @ExcelProperty(value = "1:是， 2：否")
    private Integer salaryMeet;


    @Schema(description = "工作城市, 用’;‘隔开")
    @ExcelProperty("工作城市, 用’;‘隔开")
    private List<String> jobCity;

    @Schema(description = "1:专科及以上，2 本科及以上3.研究生以上3.不限-数据字典job_require_edu")
    @ExcelProperty(value = "1:专科及以上，2 本科及以上3.研究生以上3.不限-数据字典job_require_edu", converter = DictConvert.class)
    @DictFormat("job_require_edu") // TODO 代码优化：建议设置到对应的 DictTypeConstants 枚举类中
    private Integer jobRequireEdu;

    @Schema(description = "%y-%M-%d投递截止实践")
    @ExcelProperty("投递截止实践")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate jobEndDay;

    @Schema(description = "1:已发布2：未发布；3过期数据字典：job_status", example = "1")
    @ExcelProperty(value = "1:已发布2：未发布；3过期数据字典：job_status", converter = DictConvert.class)
    @DictFormat("job_status") // TODO 代码优化：建议设置到对应的 DictTypeConstants 枚举类中
    private Integer jobStatus;

    @Schema(description = "投递数量")
    @ExcelProperty("投递数量")
    private Integer jobDeliveryNum;
}